1. Field of the Invention
The present invention relates to serial port communication and, more specifically, to efficiently emulating serial port communication.
2. Description of the Related Art
Conventional computing systems use a serial port to communicate with basic peripherals like the console display and keyboard. The console is used, for example, for system administration messages, kernel error messages, security events, debugging, and/or other purposes.
FIG. 1 depicts the architecture and components of an exemplary arrangement of serial communication. Communication may originate in the upper layers of operating system software 102 (or perhaps even in applications, not shown). The upper layers 102 transmit such requests to corresponding device driver software 108 via a predefined driver model interface 104. The device driver 108, in turn, communicates send (S) and receive (R) messages to the serial com port device 112 via a predefined hardware interface 113. The device 112 transmits and receives such messages via path 116 to connected peripheral 118. The connected peripheral is typically a computer with a serial port and attached keyboard and video devices running terminal emulation software, such as HyperTerm to provide a console and keyboard interface. Analogously, communication may also be conducted via BIOS 110, through the predefined BIOS interface 106. The BIOS logic for serial communication uses the same hardware interface 113 for the serial port device.
In some computing platforms, the processor environment does not include the basic peripherals such as a console display or keyboard. Instead these devices are typically located remotely. For example, FIG. 2 is a high-level architectural diagram of the BladeFrame™ computing platform, as described in U.S. patent application Ser. No. 10/038,354, filed Jan. 4, 2002, entitled Address Resolution Protocol System and Method in a Virtual Network, published on Oct. 24, 2002, which is hereby incorporated by reference in its entirety. Processor nodes 205 have processors 207 which inter-communicate with each other via a communication fabric (e.g., Giganet fabric) 210 and 215. Control nodes may also communicate on the communication fabric and also communicate with management logic 235 which (for present purposes) may be considered to have a keyboard and display to act as a console for a processing network.
For environments, such as FIG. 2, serial communication normally associated with the console may be achieved by a system as depicted in FIG. 3. The upper layers of the OS 102′ transmit communication messages to driver 302 via the conventional driver model interface 104 for the serial port driver. The driver 302 has a device driver front end 308 that “looks like” and “acts like” the conventional serial com port driver (e.g., driver 108 of FIG. 1), at least from the perspective of the OS 102. The driver 302, however, includes emulation logic 310 that communicates over an alternative medium 312 (i.e., not a conventional serial link) to serial devices 118. In the example of FIG. 2 the other medium 312 includes the communication fabric 210. For example, the emulation logic 310 in driver 302 may “wrap” the serial port communication in special packets to be delivered to the control blade where they can be “unwrapped” and the data therein may be used to communicate with the appropriate peripheral. It should be appreciated that this other medium may be quite complicated. For example, in FIG. 2, the control nodes 220 may include special forwarding logic for detecting serial communication requests and reformatting and forwarding such requests yet again on a different physical medium or using a different protocol. Notice in the environment of FIG. 3 there is no serial com port device 112.
For certain processing contexts, the above approach of emulation via a device driver is incomplete. FIG. 4, for example, illustrates the situation presented in some environments. Some operating systems 102′, and other low-level software, expect to communicate directly 402 with the hardware interface 113 of the serial port device, bypassing any device drivers and Basic Input/Output System (BIOS). Consequently, emulating serial communication with an approach like FIG. 3 will not work for such direct communication.